package main

func main() {
	//if-else
	//flag := false
	//if flag {
	//	fmt.Println("this is true")
	//} else if !flag {
	//	fmt.Println("this is false")
	//} else {
	//	fmt.Println("this is null")
	//}
	//
	//if age := 20; age > 10 {
	//	fmt.Println("age 大于10, age=", age)
	//}

	// 注意 go 语言中没有三目运算
	// if分支中{}不能省略, 并且紧挨着if中的条件

	// Go 语言中的所有循环类型均可以使用 for 关键字来完成。
	//for 循环的基本格式如下：
	//for 初始语句;条件表达式;结束语句{
	//循环体语句
	//}
	//条件表达式返回 true 时循环体不停地进行循环，直到条件表达式返回 false 时自动退出循环。
	//for i := 0; i < 10; i++ {
	//	fmt.Println(i)
	//}
	// go中没有while语句

	// for range
	//var str = "hello world"
	//for i, c := range str {
	//	fmt.Println(i, string(c))
	//}

	//var arr = []string{"php", "java", "python"}
	//for index, element := range arr {
	//	fmt.Println(index, element)
	//}

	// switch case
	//extname := "pdf"
	//switch extname := "pdf"; extname {
	//case "pdf", "pdf1":
	//	println("pdf")
	//	// golang中可以写, 也可以不写, 命中后默认不会往后执行
	//  // 如果需要往下执行, 需要写 fallthrough, 只会执行到下一个case.
	//	break
	//case "pdf2":
	//	println("pdf2")
	//	break
	//default:
	//	println("default")
	//}

	//lable2:
	//	for i := 0; i < 2; i++ {
	//		for j := 0; j < 10; j++ {
	//			if j == 2 {
	//				break lable2
	//			}
	//			fmt.Println("i j 的值", i, "-", j)
	//		}
	//	}

	// goto 跳转到指点标签位置,继续执行.
	var n = 30
	if n > 24 {
		println("成年人")
		goto label3
	}

	println("aaa")
	println("bbb")
label3:
	println("ccc")
	println("ddd")
}
